package com.claimSettlement.mapper;

import com.claimSettlement.pojo.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/*
 *菜单Mapper层接口
 *宁杰
 */
@Repository
public interface ClaimsMapper {
    /**
     *
     * @return 获取所有的理赔信息
     */
    List<Settlement> getSettlement(Integer userId);
    /**
     * param 理赔编码和保单号
     * @return 根据条件查询理赔信息
     */
    List<Settlement> getSettlementCond(@Param("userId")Integer userId,@Param("settlement_number") String settlement_number,@Param("warrantyId") String warrantyId);
    /**
     *
     * @param settlement 要新增的数据对象
     * @return 新增状态
     */
    Integer insertClaims(Map<String,Object> map);
    /**
     *
     * @param settlement 要修改的理赔数据对象
     * @return 修改状态
     */
    Integer updateClaims(Map<String,Object> map);
    /**
     *
     * @param settlement 根据理赔编号删除数据
     * @return 删除状态
     */
    Integer deleteClaims(Integer settlement_number);

    /**
     *
     * @param flowId 流程id
     * @return 判断核损流程是否完成
     */
    Integer flowState(Integer flowId);

    /**
     *
     * @param settlement_number 理赔信息id
     * @return 查看当前理赔信息审核状态
     */
    Integer claim_check(Integer settlement_number);

    /**
     *
     * @param settlement_number 修改审核状态
     * @return 修改返回的状态
     */
    Integer updateClaimCheck(@Param("settlement_number") Integer settlement_number,@Param("claim_check")Integer claim_check);
    /**
     *
     * @param flowId 修改核损状态
     * @return 修改的状态
     */
    Integer updateFlowState(Integer flowId);

    /**
     *
     * @param settlement_number 理赔信息id
     * @return 修改报案状态
     */
    Integer updateCaseState(Integer settlement_number);
    /**
     *
     * @param settlement_number 理赔信息id
     * @return 修改结案时间状态
     */
    Integer updateCloseCaseTime(Integer settlement_number);

    /**
     *
     * @param settlement_number 理赔id
     * @return 根据id 获取理赔信息
     */
    Settlement getSettlementId(Integer settlement_number);

    /**
     *
     * @param lossId
     * @param subtotal 查询的小计字段名称
     * @return 一条理算信息
     */
    List<Justment> getAdjustmentInfo(@Param("lossId") Integer lossId, @Param("subtotal")String subtotal,@Param("riskTypeId") Integer riskTypeId,@Param("riskType") Integer riskType);

    /**
     *
     * @param userId 用户id
     * @param danger 查询的哪个字段的险别id
     * @return
     */
    Integer getDanger(@Param("userId") Integer userId, @Param("danger")String danger);

    /**
     *
     * @return 获取所有险别信息
     */
    List<RiskType> getRiskTypeAll();

    /**
     *
     * @param map 数据集合
     * @return 添加理算信息
     */
    Integer insertAdjustment(Map<String,Object> map);

    /**
     *
     * @param userId 用户id
     * @return 根据报案编号清空理算信息
     */
    Integer deleteAdjustment(Integer userId);

    /**
     *
     * @param userId
     * @return 查询理算信息
     */
    List<Adjustment> getAdjustment(Integer userId);

    /**
     *
     * @param riskTypeId 险别id
     * @return 该险别类型
     */
    Integer getRiskType(Integer riskTypeId);

    /**
     *
     * @param userId
     * @return 获取所有理算任务
     */
    List<LossDetermination> getSettlementTask(Integer userId);

    List<CheLoss> getCheLossTask(Integer lossId);
    List<WuLoss> getWuLossTask(Integer lossId);
    List<RenLoss> getRenLossTask(Integer lossId);
}
